// 路由鉴权文件   pinia 数据持久化版
// 引入路由文件
import router from '@/router/index'
// 引入路由进度条插件
//@ts-ignore  跳过语法检查
import nprogress from 'nprogress'
// 引入进度条样式
import 'nprogress/nprogress.css'
// 去掉右上角loading小圆圈
nprogress.configure({ showSpinner: false })

import {  GET_TOEKN } from "@/utils/token";


// 前置路由守卫  路由跳转前发生
router.beforeEach(async (to: any, form: any, next: any) => {
  //to:你将要访问那个路由  from:你从来个路由而来 next:路由的放行函数

  // 页签标题
  document.title = to.meta.title
  // 开启进度条
  nprogress.start()

  //判断用户是否登录 
  if (GET_TOEKN()) {
    // 登录成功后除非退出登录否则不允许前往登录页
    if (to.path == '/login' || to.path == '/register') {
      next({ path: '/' })
    } else {
      next()
    }
  } else {
    // 如果没有登录 那么只能去往登录页和注册页(没有写注册页)
    if (to.path == '/login' || to.path == '/register') {
      next()
    } else {
      // 把需要前往的页面放到重定向里，这样登录成功后会立即跳转到要前往的页面
      next({ path: '/login', query: { redirect: to.path } })
    }
  }

})

// 后置路由守卫   路由跳转后发生
router.beforeEach((to: any, form: any) => {
  //to:你将要访问那个路由  from:你从来个路由而来 

  // 关闭进度条
  nprogress.done();
})